#ifndef DWARF__LEXICAL_BLOCK_H
#define DWARF__LEXICAL_BLOCK_H

#include <list>

#include <libdwarf/libdwarf.h>

namespace dwarf {

class LexicalBlock {
public:
	static bool contains(Dwarf_Debug _debug, Dwarf_Die _die, const void *_pc);
private:
	std::list<std::pair<void *, void *> > ranges_;
public:
	LexicalBlock(bool &_rtn, Dwarf_Debug _debug, Dwarf_Die _die);
	LexicalBlock(const LexicalBlock &_lexicalBlock);
	~LexicalBlock();
public:
	const std::list<std::pair<void *, void *> > &getRanges() const;
};

}

#endif // DWARF__LEXICAL_BLOCK_H
